package org.rkuk.kasutil.timeline.conditions 
{
	import org.rkuk.kasutil.timeline.ITickInfo;
	import org.rkuk.kasutil.timeline.ITicker;
	import org.rkuk.kasutil.timeline.Timeline;
	/**
	 * 实现在指定的时刻或帧才进行刷新,其它时刻不刷新
	 * @author rkuk
	 */
	public class GivenFrames implements ITickerUpdateCondition
	{
		private var _frames:Array;
		/**
		 * 构造函数
		 * @param	frames	一个数组，包含了指定刷新的时间或帧
		 */
		public function GivenFrames(frames:Array) 
		{
			_frames = frames;
		}
		
		/* INTERFACE org.rkuk.kasutil.timeline.conditions.ITickerUpdateCondition */
		
		/**
		 * 实现在指定的时刻或帧才进行刷新,其它时刻不刷新.
		 * @param	timeline	发出刷新信号的Timeline对象
		 * @param	ticker		可能将要被刷新的ITicker对象
		 * @param	tickInfo	Timeline发出刷新信号时的时间信息
		 * @return	true表示ITicker需要被刷新，false表示ITicker不需要被刷新
		 */
		public function isNeedUpdate(timeline:Timeline,ticker:ITicker, tickInfo:ITickInfo):Boolean
		{			
			if (_frames==null || _frames.indexOf(tickInfo.currentTime) == -1)
				return false;
			else
				return true;
		}
		
	}

}